#include <assert.h>
#include <stdio.h>
#include "test.h"
#include "../../includes/database_exploitation.h"


/* Prototype des fonctions*/
void EXPLOITATION_CreateTest();
void EXPLOITATION_DestroyTest();
void EXPLOITATION_SetGetNomExploitationTest();
void EXPLOITATION_SetGetQualiteExploitationTest();


int main(void)
{
  EXPLOITATION_CreateTest();
  EXPLOITATION_DestroyTest();
  EXPLOITATION_SetGetNomExploitationTest();
  EXPLOITATION_SetGetQualiteExploitationTest();
  return 0;
}


//test unitaire pour la fonction EXPLOITATION_Create
void EXPLOITATION_CreateTest()
{
  TEST TITLE ("EXPLOITATION_CreateTest");
  PTR_EXPLOITATION PtrExploitation ) NULL;
  int result = 0;
  result = EXPLOITATION_Create(&PtrExploitation);
  
  TEST(result == 0);
  TEST(PtrExploitation != NULL);
}


//test unitaire pour la fonction EXPLOITATION_Destroy
void EXPLOITATION_DestroyTest()
{
  TEST_TITLE("EXPLOITATION_DestroyTest");
  PTR_EXPLOITATION PtrExploitation = NULL;
  int result = 0;
  result = DATETIME_Create(&PtrExploitation);
  
  assert(result == 0);
  assert(PtrExploitation != NULL);
  
  result = DATETIME_Destroy(&PtrExploitation);
  TEST(result == 0);
  TEST(PtrExploitation == NULL);
}


//test unitaire pour les fonctions EXPLOITATION_GetNom et EXPLOITATION_SetNom
void EXPLOITATION_SetGetNomExploitationTest()
{
  TEST_TITLE("EXPLOITATION_SetGetNomExploitation");
  PTR_EXPLOITATION PtrExploitation = NULL;
  int result = 0;
  result = EXPLOITATION_Create(&PtrExploitation);
  
  char nom[64] = "A\0";
  EXPLOITATION_SetNom(PtrExploitation, nom);
  EXPLOITATION_GetNom(PtrExploitation, nom);
  
  TEST( strcmp(nom, "A\0") == 0 );
  
  result = EXPLOITATION_Destroy(&PtrExploitation);
}


//test unitaire pour les fonctions EXPLOITATION_GetQualite et EXPLOITATION_SetQualite
void EXPLOITATION_SetGetQualiteExploitationTest()
{
  TEST_TITLE("EXPLOITATION_SetGetQualiteExploitation");
  PTR_EXPLOITATION PtrExploitation = NULL;
  int result = 0;
  result = EXPLOITATION_Create(&PtrExploitation);
  
  qualite = Haute;
  EXPLOITATION_SetQualite(PtrExploitation, qualite);
  EXPLOITATION_GetQualite(PtrExploitation, qualite);
  
  TEST( strcmp(qualite, Haute) == 0 );
  
  result = EXPLOITATION_Destroy(&PtrExploitation);
}